Apache POI ব্যবহার করে আপনি Word ডকুমেন্ট তৈরি করতে পারেন এবং এটি একটি Template থেকে Dynamic Content সহ নতুন ডকুমেন্ট তৈরি করতে পারেন। এই প্রক্রিয়ায়, একটি স্ট্যাটিক Word Template (যেমন .docx
ফাইল) ব্যবহার করা হয়, যেখানে পূর্বনির্ধারিত টেক্সট বা প্লেসহোল্ডার থাকে এবং প্রোগ্রামmatically সেই টেক্সট বা প্লেসহোল্ডার পরিবর্তন বা প্রতিস্থাপন করা হয়।
এই পদ্ধতিতে, আপনার Template ফাইলের কিছু অংশ ডাইনামিকভাবে পরিবর্তন করা সম্ভব, যেমন নাম, তারিখ, ঠিকানা, অথবা অন্যান্য কাস্টম ডেটা।
${name}
, ${date}
) ব্যবহার করবেন।ধরা যাক, আমাদের কাছে একটি টেমপ্লেট template.docx
ফাইল আছে, যেখানে কিছু প্লেসহোল্ডার আছে যেমন ${name}
এবং ${date}
। এখন আমরা এই টেমপ্লেটটি ব্যবহার করে একটি নতুন ডকুমেন্ট তৈরি করব, যেখানে এই প্লেসহোল্ডারগুলো ডাইনামিক ডেটা দিয়ে প্রতিস্থাপন করা হবে।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;
public class DynamicDocumentGeneration {
public static void main(String[] args) throws IOException {
// Template ডকুমেন্ট লোড করা
FileInputStream fis = new FileInputStream("template.docx");
XWPFDocument document = new XWPFDocument(fis);
// ডাইনামিক ডেটা
Map<String, String> data = Map.of(
"${name}", "John Doe",
"${date}", "2024-12-17"
);
// টেমপ্লেটে প্লেসহোল্ডার গুলি প্রতিস্থাপন করা
for (XWPFParagraph paragraph : document.getParagraphs()) {
for (XWPFRun run : paragraph.getRuns()) {
String text = run.getText(0);
if (text != null) {
// প্লেসহোল্ডার গুলি প্রতিস্থাপন করা
for (Map.Entry<String, String> entry : data.entrySet()) {
if (text.contains(entry.getKey())) {
text = text.replace(entry.getKey(), entry.getValue());
run.setText(text, 0); // প্রতিস্থাপিত টেক্সট সেট করা
}
}
}
}
}
// নতুন ডকুমেন্ট সংরক্ষণ
FileOutputStream out = new FileOutputStream("generated_document.docx");
document.write(out);
out.close();
System.out.println("ডাইনামিক ডকুমেন্ট সফলভাবে তৈরি হয়েছে।");
}
}
(${name})
এবং (${date})
এর পরিবর্তে আসল মান দেওয়া হয়েছে।Apache POI ব্যবহার করে আপনি সহজেই একটি Template Word Document থেকে Dynamic Document তৈরি করতে পারেন। টেমপ্লেটে প্লেসহোল্ডার বা স্ট্যাটিক টেক্সট রেখে, প্রোগ্রামmatically তা পরিবর্তন করে ডাইনামিক কনটেন্ট যোগ করা সম্ভব। এটি বিভিন্ন প্রয়োজনে যেমন কাস্টম রিপোর্ট তৈরি, চিঠি বা নোটিফিকেশন ইত্যাদি তৈরিতে কাজে আসে। Template থেকে ডাইনামিক ডকুমেন্ট জেনারেট করার জন্য XWPFParagraph এবং XWPFRun ব্যবহার করা হয় টেক্সট ম্যানিপুলেট করার জন্য।
common.read_more